查看原文
其他

Web应用安全浅析

小白客 计算机与网络安全 2022-06-01

信息安全公益宣传,信息安全知识启蒙。

加微信群回复公众号:微信群;QQ群:16004488

加微信群或QQ群可免费索取:学习教程

教程列表见微信公众号底部菜单


Web应用安全历史


从时间上来看


黑客的发展经历了以下三个阶段:


启蒙时代->黄金时代->黑暗时代


启蒙时代


这个时期大概处于20世纪90年代,这个时候中国的互联网才刚刚起步,一些喜欢新技术的年轻人们受到外国黑客的影响,开始研究计算机漏洞,成为黑客的大多数人都是凭借着自己的兴趣,好奇和求知欲,没有任何的利益关系。他们通过互联网,看到了世界,与全世界的黑客有了统一的信仰:分享、自由、免费,每个人都喜欢分享自己的技术成果。


黄金时代


黄金时代诞生于中美黑客大战这个大背景下,在这个时期,黑客这个特殊的群体一下子吸引了社会上所有人士的眼球,中国有无数的青少年走上了黑客的道路。这个时候的中国黑客最普遍的特点就是年轻,有活力,充满了激情。有利也有弊,这个时候贩卖漏洞、恶意软件的现象开始升温,同时也因为这个特殊群里的参差不齐,开始出现了以盈利为目的的攻击行为,黑色产业链逐渐成型。


黑暗时代


这个时期从十年前开始到现在,也许还会持续很长的一段时间。黑客这个群里也随着社会发展规律而出现优胜劣汰的现象,大多数的黑客没有坚持下来。上一个时代流行的各种圈子也越来越没落。所有的门户型漏洞纰漏点也都不愿意再讨论任何有关于漏洞细节相关的技术细节。


随着安全产业的大力发展,某些黑客群体的功利性越来越强,每一年都给互联网造成数十亿上百亿的损失。而上个时代坚持下来的黑客们,现在都已经成长为安全领域的高级人才。有的在安全公司贡献着自己的专业技能,而有一部分人群却凭着强硬的技术投身黑产。这个时期的黑客已经缺失了彼此间的新人,一开始所倡导的黑客文化:分享、自由、免费,已经一去不复返。


从技术的角度上来看


在早期的互联网中


Web并不是互联网的主要应用,那时候更多的是邮件服务、文件服务等,并且拥有绝大多数的用户,因此,黑客攻击的主要目标是网络、操作系统以及软件等方面,web应用安全方面的攻击和防御还处于非常原始的阶段。基于web的攻击一般来说只能让黑客拿到一个低权限的账号,相对于直接攻击系统软件来说,没有任何的吸引力。


但是随着时代的发展


防火墙的兴起改变了互联网安全的格局,尤其是以思科、华为为代表的网络设备商,开始在网络设备中注重网络安全,最终改变了网络的走向。防火墙、acl的兴起,使得原本直接暴露在公网上的系统得到了较好的保护。


对于整个互联网来说,2003年发生的冲击波蠕虫是一个里程碑的时间。


这个针对windows操作系统RPC服务(445端口)的蠕虫病毒,在很短的时间内席卷了全球,造成数以百万的设备受到感染,损失不可估量。在这件事情发生以后,运营商们很坚决的在骨干网络中屏蔽了135、445等端口的连接请求。这次事件之后,整个互联网对于安全的重视达到了一个空前的高度。


从此之后,运营商、防火墙对网络进行了大规模封锁


暴露在互联网上的非web服务越来越少,且web技术的成熟使得web应用的功能越来越其强大,最终成为了互联网的主流。黑客们的目光,也渐渐转移到了web这块大蛋糕上来。


直到今天


也正是因为web应用越来越蓬勃的发展,才有了今天这么丰富多彩的互联网生活,同时互联网业务也催生除了许许多多的脚本语言,如python、ruby、nodejs等等,敏捷开发成为互联网的主旋律。而手机技术、移动互联网的兴起,也给html5带来了新的挑战和机遇,web安全技术也将紧跟这互联网的发展脚步,不断地演化出新的变化。


WEB应用安全基础


传统的计算机安全体系的建立依靠的是诸如防火墙,IPS(入侵防御系统),漏洞扫描系统、上网行为管理、杀毒软件、UTM(威胁管理)等软硬件的加固,在攻击者的恶意网络流量被计算机接收之前拦截掉。而这些都是依据已有的漏洞特征来识别的。


而现在,WEB2.0时代的繁荣,各种各样的web应用如雨后春笋。每一个web应用都是一项不同的业务,出现的漏洞再也不是向传统计算机漏洞那般已知的,更多的是业务上的漏洞,因此也无法通过传统的安全设备进行完全的防护。对于现在的互联网来说,Web应用安全是一个严峻的考验,而且对于黑客来说,攻击的难度低;而对于开发人员来说,防护难度大。接下来,通过八个点来对比传统计算机安全和WEB应用安全的差异。


通用性


传统的计算机安全是建立在操作系统本身或者使用较为广泛的通用软件上面的,有很强的一致性。而每一个WEB应用都相当与一个独立的软件,表现出独特性。


开发者


存在计算机或者通用软件漏洞的开发者都是具有高度专业技术的厂商人员,对安全有一定的意识。而相比之下WEB应用的开发者遂平参差不齐,绝大多数开发者对于安全的理解不足。


漏洞的检测


传统计算机安全的检测一般是建立在漏洞已知、确定的基础上,每一个确定的漏洞,攻击方式都大同小异,安全设备很轻易的就能确定你的攻击行为并进行必要的防护。而WEB应用安全的检测则是基于当前业务的特点对可能存在的漏洞进行检查,结果并不能确定,攻击的方式也是千奇百怪。


漏洞的挖掘


对于传统的计算机安全,攻击者如果想要主动挖掘漏洞,就需要对计算机的结构、操作系统原理,硬件底层语言等具有很深的了解,难度非常大。而针对WEB漏洞的挖掘只需要攻击者掌握一些基本的网站架构、脚本语言、数据库知识就可以考试了,难度相对较低。


漏洞的修复


传统的计算机漏洞需要由专业的厂商来提供修复的解决方案,而WEB应用漏洞WEB开发人员就可以自行修复。


攻击的途径


由于运营商和防火墙等安全设备的封锁,多数的计算机服务端口并不会在公网上面出现,针对传统的计算机的攻击途径较少。而WEB应用的业务特点导致了多数的WEB应用是在公网上开放的,容易遭到攻击者的入侵。


攻击特征


传统的计算机攻击行为具有数据级的攻击特征,一般与正常的业务行为差异明显,很容易被区分出来。而针对WEB应用的攻击行为特征不明确,尤其是业务逻辑类的漏洞,在数据层面和正常的业务行为是没有区别的。


防护难度


传统的计算机漏洞防护起来相对较容易,仅需及时升级漏洞软件版本或者更新最新的补丁包。而WEB应用漏洞的防护难度相对较大,漏洞修复后有可能再一次被攻击者绕过。


那么,如何来学好WEB应用安全呢?作为一个合格的黑客,以下知识是不可少的:


  • 了解网站基础架构

  • 了解HTML语言

  • 了解javascript语言

  • 了解数据库

  • 了解常见的服务器语言(PHP、ASP、JSP)


下面阅读原文有啥

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存